package grupo6.mc548;


import java.util.ArrayList;
import java.util.Random;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Rafael Hideo
 */
public class GeradorDeSolucoes {
    ArrayList<EstacaoDeEmissao> stationsList;
    int numeroPontos;
    int numeroEstacoes;

    public GeradorDeSolucoes(ArrayList<EstacaoDeEmissao> lista, int numpts , int numstations){
        numeroPontos = numpts;
        numeroEstacoes = numstations;
        stationsList = lista;
    }


//    Vendo como fica =]
    public Solucao Testa(){

        Solucao solution = new Solucao(numeroPontos, numeroEstacoes);
        solution.addEstacao(stationsList.get(0));
        solution.addEstacao(stationsList.get(1));
        solution.addEstacao(stationsList.get(3));
        
        return solution;
    }


//    random
    public Solucao GeraSolucaoRandom(){
        Random random = new Random();
        Solucao solution = new Solucao(numeroPontos, numeroEstacoes);
        ArrayList<EstacaoDeEmissao> temp = new ArrayList<EstacaoDeEmissao>();
        temp.addAll(stationsList);  //para nao remover da lista original, usei temp
        while(solution.getPontosCobertos() != numeroPontos){
            int indice = random.nextInt(temp.size());
            EstacaoDeEmissao estacao = temp.get(indice);
            solution.addEstacao(estacao);
            temp.remove(indice);
        }
        return solution;
    }


    //imprimeSolucao
    public void imprimeSolucao(Solucao solution){
        System.out.println("Valor: " + solution.getCusto());
        System.out.println("Total: " + solution.getNumeroEstacoes());
        for(int i = 0; i < solution.getNumeroEstacoes(); i++)
            System.out.println(solution.getEstacoes().get(i).getId());
        System.out.println("Pontos Cobertos: " + solution.getPontosCobertos());
    }


}
